Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Програмування комп’ютерної графіки

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Звіт про виконання лабораторної роботи №4 з курсу “ Програмування комп’ютерної графіки” Львів – 2011 Мета роботи: набути практичних навиків в складанні програм для побудови рухомих зображень на екрані комп’ютера за допомогою матричних перетворень. ЗАВДАННЯ Написати програму мовою С++,що дозволяє сформувати на екрані комп’ютера рухоме зображення, використовуючи матричні операції. Таблиця 1. Завдання до лабораторної роботи № варіанту Структура зображення Пояснення  3  d a Рух кульки по видимому ромбовидимму контуру проти годинникової стрілки. Кольори кульки і контуру різні. Параметри: d=18; a=50   Список змінних, які використовуються в коді програми, та їх пояснення: K, C, d, r, a, f, x, y, x1, y1, x2, y2, x3, y3, i, f- змінні типу double. BOOL Rectangle(int x1,int y1,int x2,int y2 )- малює прямокутник х1, у1 задають координати верхнього лівого кута, а х2, у2 правого нижнього кута прямокутника. При успішному виконанні функція повертає TRUE, інакше FALSE. BOOL Ellipse(int x1,int y1,int x2,int y2 )- малює еліпс х1, у1 задають координати верхнього лівого кута, а х2, у2 правого нижнього кута прямокутника, який визначає розміри еліпса. При успішному виконанні функція повертає TRUE, інакше FALSE. BOOL CreateSolidBrush(COLORREF crColor )-ініціалізує суцільний пензель заданими атрибутами. crColor задає колір пензля. Блок-схема алгоритму програми:  Остаточна версія програми: // ChildView.cpp : implementation of the CChildView class // #include "stdafx.h" #include "lab 4.h" #include "ChildView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CChildView CChildView::CChildView() { } CChildView::~CChildView() { } BEGIN_MESSAGE_MAP(CChildView, CWnd) ON_WM_PAINT() END_MESSAGE_MAP() // CChildView message handlers BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) { if (!CWnd::PreCreateWindow(cs)) return FALSE; cs.dwExStyle |= WS_EX_CLIENTEDGE; cs.style &= ~WS_BORDER; cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, ::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL); return TRUE; } #include "math.h" void CChildView::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here // Do not call CWnd::OnPaint() for painting messages double K = 4; double C = 20 * K; double d = 18 * K; double r = d / 2.0; double a = 50 * K; double f = 100; int sleep = 3; double n32 = sqrt(3.0) / 3.45; CPoint p[4]; p[0].x = C; p[0].y = C + (n32 * a); p[1].x = C + a / 2.0; p[1].y = C; p[2].x = C + a; p[2].y = C + (n32 * a); p[3].x = C + a / 2.0; p[3].y = C + 2*(n32 * a); dc.Polygon(p,4); double x,y, x1,y1,x2,y2,x3,y3; x = a / f / 2.0; y = n32 / f; CBrush bBlue; bBlue.CreateSolidBrush(RGB(0, 120, 0)); x1 = p[0].x - r; y1= p[0].y - r; x2 = p[0].x + r; y2= p[0].y + r; dc.SelectStockObject(NULL_PEN); dc.SelectObject(bBlue); dc.Ellipse(x1,y1, x2,y2); for (int i = 0; i < f*4; i++) { if (i > 0 && i <= f) { x = a / f / 2.0; y = a * n32 / f; } if (i > f && i <= f*2) { x = a / f / 2.0; y = -a * n32 / f; } if (i > f*2 && i <= f*3) { x = -a / f / 2.0; y = -a * n32 / f; } if (i > f*3 && i <= f*4) { x = -a / f / 2.0; y = a * n32 / f; } x1 += x; y1 += y; x2 += x; y2 += y; dc.SelectStockObject(WHITE_BRUSH); dc.SelectStockObject(NULL_PEN); dc.Rectangle(0,0, 1000,1000); dc.SelectStockObject(BLACK_PEN); dc.Polygon(p,4); dc.SelectStockObject(NULL_PEN); dc.SelectObject(bBlue); dc.Ellipse(x1,y1, x2,y2);; Sleep(sleep); GdiFlush(); } } Результат роботи програми:  Висновок: При виконанні даної лабораторної роботи я набув практичних навиків у скаданні програм для побудови рухомих зображень на екрані комп’ютера за допомогою матричних перетворень у середовищі Microsoft Visual Studio C++ 2008. Список змінних, які використовуються в коді програми, та їх пояснення: Xmash, ...
Антиботан аватар за замовчуванням

28.01.2013 18:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини